iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

引言

想像你走進一個大型超市要買新鮮的番茄 🍅。菜架上擺滿了上百種蔬果,如果你用 RNN 或是 LSTM 那樣的序列模型的方法找,你就會是一層一層貨架這樣依序慢慢找。這樣應該會花很多時間才會找到你要的東西。

但是呢,在 Transformer 中有一功能叫 注意力機制(Attention Mechanism),它就像給你裝上了一雙「雷達眼」,讓你能直接鎖定番茄所在的位置,不必逐一檢查每個貨架。
Transformer 就是把這種「抓重點、知道該注意誰」的能力搬進模型裡,讓它能一次抓住長長的文本中的重要資訊,而不是慢慢累積記憶。

今天我們就來更詳細的認識這個架構吧!


(不是這個)

Transformer

Transformer 是為了做 Seq2Seq(Sequence to sequence) 任務而設計的,也就是「輸入一段序列 → 輸出另一段序列」,像翻譯或摘要這類的任務。

不像傳統的 RNN/LSTM 是逐步處理序列去累積記憶,Transformer 的作法一次把整個序列丟進去,然後靠 注意力機制 去找出輸入中對生成輸出最重要的部分。

原始的 Transformer 架構是 Encoder-Decoder 的形式:Encoder 負責讀懂整個輸入序列,Decoder 根據 Encoder 的訊息一步步生成輸出序列。

在接下來的內容,我們先了解注意力機制,再介紹 Encoder-Decoder 的概念~

注意力機制 Attention Mechanism

Attention Mechanism 的概念是要動態地依據每個詞的不同,去關注其他詞。

就好比你要做一道「番茄義大利麵」。

  • 當你在想「義大利麵」這個詞,你腦中會想到需要的食材有番茄、蒜頭、橄欖油。
  • 當你在想「番茄」時,腦中又會想到「紅色蔬菜」。

這個「根據當下關注的詞,去注意到其他詞的重要性」的過程,就是 注意力機制

在 Transformer 裡,這件事在數學上化成了 Q、K、V:

  • Query(Q)查詢:表示「我現在關注的這個詞要找到的資訊」
  • Key(K)標籤:表示「我是輸入序列中的某個詞,這是我的標籤」
  • Value(V)值:表示「如果我被選中,我能提供的資訊內容」

也可以想像成我現在在圖書館,Q 是我要找的資訊,K 是書的目錄,V 是書的內容。

那有了這三個元素要如何進行計算呢?


圖片來源:https://kangshitao.github.io/2020/11/15/transformer/

Attention 計算流程是:

  1. Q 與 K 做內積
    每個 Query(Q)會和所有 Key(K)計算相似度,得到一個分數。分數越高代表這個 Key 與當前 Query 越相關。
  2. Softmax
    把分數轉成權重,Softmax 計算會讓各項數值介於 [0, 1] 之間,且總和為 1。這樣模型就知道關注度的比例該如何分配。
  3. 加權求和
    用以上的權重去加權所有的 Value(V),得到一個「加權輸出向量」,就是最終的 Attention 結果。

舉個例子,當模型在翻譯英文句子「I love pizza」時:

  1. 如果目前 Query 是「love」,它會把「love」和句子中所有詞(I, love, pizza)的 Key 做相似度的計算。
  2. 計算結果進行 softmax 後得到結果 [0.1, 0.1, 0.8](分別對應 I, love, pizza)。
  3. 可以看到「love」和「pizza」的權重最高,那麼 Attention 就會給「pizza」的 Value 更高的關注。

Encoder & Decoder

前面提到 Seq2Seq(Sequence to sequence)任務,是「輸入一段序列,再輸出一段序列」的過程。在這個架構中,處理輸入與輸出的部分,分別是由 Encoder(編碼器)Decoder(解碼器) 負責。


圖片來源:https://ithelp.ithome.com.tw/m/articles/10261889

  • Encoder(編碼器)
    負責把輸入的序列轉成一組向量,也可稱作 「隱含表示」(hidden representation)。這組表示就像是將輸入句子進行壓縮,裡面保留了句子的語意與結構。
  • Decoder(解碼器)
    它會根據 Encoder 產生的隱含表示,生成輸出序列。在生成每個詞的過程中,都會用 Attention 機制來「回頭看」輸入句子,判斷應該「注意」哪個部分,才能生成更準確的輸出。

結語

今天我們認識了 Transformer 背後的兩大核心:一是讓模型能「抓重點」的 注意力機制(Attention),二是組合整個流程的 Encoder-Decoder 架構。

Encoder 負責理解輸入內容,Decoder 負責生成輸出,而 Attention 則是兩者之間的重要橋樑。這樣的設計讓 Transformer 能同時兼顧語意理解與文字生成,也成為後續很多模型的基礎~

像是後來有許多模型其實都是在 Transformer 的基礎上發展出不同方向:

  • BERT 採用 Transformer 的 Encoder 部分,擅長理解語意,用於分類、問答等任務
  • GPT 採用 Transformer 的 Decoder 部分,專長於文字生成,能寫作、對話、翻譯

明天開始,我們會進入 生成式大型語言模型(Generative Large Language Models) 的世界,看看我們熟悉的好朋友 ChatGPT 背後到底是什麼神秘力量,讓它可以生成出自然又有邏輯的文字!

References


上一篇
Day 22|長短期記憶:LSTM
系列文
讓電腦聽懂人話:30 天 NLP 入門23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言